home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / game / h_stripe / h_stripe.bas < prev    next >
BASIC Source File  |  1993-11-30  |  38KB  |  1,065 lines

  1. 10 '
  2. 20 '#################################
  3. 30 '###                                                   ###
  4. 40 '### HYPER STRIPE  Ver.1.9       ###
  5. 50 '###         -QUIZ IN THE SKY- ###
  6. 60 '###                                                   ###
  7. 70 '###                (C) KIM 1993                ###
  8. 80 '###            Programed by T.KIMURA   1993.6        ###
  9. 90 '###                for F-BASIC386 V1.1L21(V2.1L10 OK)   ###
  10. 100 '###                                                   ###
  11. 110 '#################################
  12. 120 '
  13. 130 ON ERROR GOTO *TRAP
  14. 140 CLEAR,,,515000
  15. 150 ' ↑メモリ食い! V2.1システム+2MBだったらサイドワークを外して!(^_^;)
  16. 160 '
  17. 170 ON ERROR GOTO *TRAP
  18. 180 WINDOW:VIEW:COLOR 7,0,7,4:CONSOLE 0,25,0:CLS:BGM 1
  19. 190 N=5:RV=1:GM=1:BR=16    '↓配列変数の山^^;
  20. 200 DIM QUE$(N,200),EX$(N,200,3),ANS(N,200),BY(N,20),LIM(N),PLA%(6000),PLB%(1500),PAN%(30400),SKY%(139200),BAN%(8016),VUL%(1700),SO%(1818)
  21. 210 FOR I=0 TO 20:FOR J=0 TO N
  22. 220  BY(J,I)=999
  23. 230 NEXT J,I
  24. 240 FOR I=1 TO 10:BGCD(I)=2:NEXT
  25. 250 *LOGO
  26. 260 SCREEN@2:PALETTE
  27. 270 PALETTE 1,[255,0,255]
  28. 280 WINDOW(0,0)-(640,511):VIEW(0,0)-(640,511):CLS
  29. 290 SYMBOL(90,480),"By KIM & Astronomy Club  & Personal-computer Club",1,1.8!,%1,,,1
  30. 300 Y=0:A=6
  31. 310 FOR I=0 TO 300
  32. 320  Y=Y+A:A=A-.1!
  33. 330  WAIT 1
  34. 340  OUT &H440,17:OUT &H443,Y
  35. 350  OUT &H440,21:OUT &H443,Y
  36. 360  IF Y<-124 THEN Y=-124:A=-A*.4!
  37. 370  BEEP 363523,120,Y*4+800:BEEP
  38. 380 NEXT
  39. 390 FOR I=50 TO 590
  40. 400  PSET(I,496),6
  41. 410 NEXT
  42. 420 FOR I=590 TO 50 STEP -1
  43. 430  PSET(I,496),4
  44. 440 NEXT
  45. 450 FOR I=0 TO 50:PALETTE 1,[255,I*5,255]
  46. 460  BEEP 363523,80,I*100+400:BEEP:WAIT 1
  47. 470 NEXT
  48. 480 WAIT 20
  49. 490 FOR I=50 TO 0 STEP -1:PALETTE 1,[255,I*5,255]:WAIT 1:NEXT
  50. 500 WAIT 15
  51. 510 SYMBOL(122,480),"KIM",1,1.8!,6,,,1
  52. 520 FOR I=0 TO 11
  53. 530  WAIT 6
  54. 540  IF I=4 THEN WAIT 20:SYMBOL(218,480),"Astronomy Club     Personal-computer Club",1,1.8!,6,,,1
  55. 550  SYMBOL(300+I*16,10),KMID$("KIMとゆかいな仲間たち",I+1,1),1,1,4,,,1
  56. 560 NEXT
  57. 570 A=0:RAD=3.14159!/180:WAIT 30
  58. 580 FOR I=0 TO 180 STEP 2
  59. 590  C=SIN(I*RAD)
  60. 600  OUT &H440,17:OUT &H443,-124+C*40
  61. 610  OUT &H440,21:OUT &H443,-124-C*40
  62. 620  WAIT 1
  63. 630 NEXT
  64. 640 *READ_DATA 'データ読み込み中はBREAK禁止!
  65. 650 SYMBOL(320,100),"データ読み込み中・・・・・・・・",1,1,7
  66. 660 SYMBOL(320,120),"しばらく寝ててください(^_^;)",1,1,7
  67. 670 LOAD@"BANG.SND",BAN%
  68. 680 LOAD@"VULCAN.SND",VUL%
  69. 690 LOAD@"SOUND.SND",SO%
  70. 700 OPEN "I",1,"CDDATA.DAT"
  71. 710 INPUT#1,OPNCD     'オープニング音楽
  72. 720 INPUT#1,BGK       'BGMの数
  73. 730 FOR I=1 TO BGK
  74. 740  INPUT#1,BGCD(I)  'BGM
  75. 750 NEXT
  76. 760 INPUT#1,CLCD      '面クリア時の音楽
  77. 770 INPUT#1,ENDCD     'エンディング音楽
  78. 780 CLOSE
  79. 790 FOR I=0 TO N:J=0
  80. 800  OPEN "I",1,"QUIZ"+RIGHT$(STR$(I),1)
  81. 810  INPUT#1,A$
  82. 820  IF A$="*" THEN J=J+1:GOTO 880 ELSE QUE$(I,J)=A$
  83. 830  FOR K=0 TO 3
  84. 840   INPUT#1,EX$(I,J,K)
  85. 850  NEXT K
  86. 860  INPUT#1,ANS(I,J)
  87. 870  J=J+1:IF J=<500 THEN 810
  88. 880  CLOSE:LIM(I)=J-1
  89. 890 NEXT I
  90. 900 SCREEN@0:CLS
  91. 910 COLOR 7:LOCATE 35,15:PRINT"もう少し待っててください・・・・・^^;"
  92. 920 FOR I=0 TO 15
  93. 930  PALETTE I,[0,0,0]
  94. 940 NEXT
  95. 950 OUT &H440,17:OUT &H443,0
  96. 960 LOAD@"IMAGE.TIF"
  97. 970 FOR I=0 TO 2
  98. 980  GET@A(0,40*I)-(144,40*I+32),PLA%,2000*I
  99. 990  GET@A(150,20*I)-(222,20*I+16),PLB%,500*I
  100. 1000 NEXT
  101. 1010 LOAD@"PANEL.TIF"
  102. 1020 GET@A(0,0)-(639,189),PAN%
  103. 1030 FOR I=0 TO 2
  104. 1040  LOAD@"SKY"+RIGHT$(STR$(I+1),1)+".TIF"
  105. 1050  CONNECT(190,287)-(170,267)-(170,70)-(190,50)-(449,50)-(469,70)-(469,267)-(449,287)-(190,287),%8
  106. 1060  CONNECT(169,289)-(160,289)-(160,170)-(169,150),%8,,F
  107. 1070  CONNECT(470,289)-(479,289)-(479,170)-(470,150),%8,,F
  108. 1080  GET@A(0,0)-(639,289),SKY%,46400*I
  109. 1090 NEXT
  110. 1100 '
  111. 1110 FOR I=0 TO 4
  112. 1120  BEEP 363523,10,800:BEEP:WAIT 15
  113. 1130 NEXT
  114. 1140 CLS:LOCATE 10,6:COLOR 7
  115. 1150 PRINT"BGMに使用するCDを入れてRUNボタンを押してください"
  116. 1160 LOCATE 10,8
  117. 1170 PRINT"CDをBGMに使わない時はSELECTボタンを押してください"
  118. 1180 WHILE PT<>4 AND PT<>8:PT=PTRIG(1):WEND
  119. 1190 IF PT=8 THEN GM=0
  120. 1200 *OPENING
  121. 1210 SCREEN@2:CLS
  122. 1220 PALETTE:A=0:B=0
  123. 1230 IF GM=1 THEN PCD= OPNCD:GOSUB *PLAYCD
  124. 1240 OUT &H440,17:OUT &H443,-240
  125. 1250 OUT &H440,21:OUT &H443,-240
  126. 1260 WINDOW(0,0)-(640,511):VIEW(0,0)-(640,511)
  127. 1270 RESTORE *OP_DATA
  128. 1280 READ A$
  129. 1290 LINE(60,A)-(640,A+24),PRESET,1,BF
  130. 1300 SYMBOL(60,A),A$,1,1,7
  131. 1310 FOR I=0 TO 15
  132. 1320  IF A$="*" OR PTRIG(1)=1 THEN I=15:NEXT:GOTO 1430
  133. 1330  A=A+2
  134. 1340  IF A>511 THEN A=A-512
  135. 1350  OUT &H440,17:OUT &H443,(A-480)/2
  136. 1360  OUT &H440,21:OUT &H443,(A-480)/2
  137. 1370  C=SIN(B)
  138. 1380  PALETTE 0,[20-C*20,0,40-C*40]
  139. 1390  B=B+.06!
  140. 1400  WAIT 4
  141. 1410 NEXT
  142. 1420 GOTO 1280
  143. 1430 '
  144. 1440 SC#=0:HP=5:NO=4:LV=1:TM=4
  145. 1450 RESTORE 9740
  146. 1460 FOR I=0 TO N
  147. 1470  READ NA$(I),SX$(I),AG(I),SE$(I),KE$(I)
  148. 1480 NEXT
  149. 1490 *TITLE
  150. 1500 SCREEN@0:WINDOW:VIEW
  151. 1510 CONSOLE 0,0,0:CLS:OUT &H443,0
  152. 1520 PALETTE 15,[0,0,0]
  153. 1530 PALETTE 2,[0,0,0]
  154. 1540 PALETTE 4,[0,180,130]
  155. 1550 PALETTE 5,[0,180,0]
  156. 1560 PALETTE 6,[220,220,0]
  157. 1570 PALETTE 7,[100,0,100]
  158. 1580 PALETTE 8,[160,240,0]
  159. 1590 PALETTE 9,[60,0,160]
  160. 1600 IF GM=1 THEN PCD= OPNCD:GOSUB *PLAYCD
  161. 1610 FOR I=10 TO 3 STEP -1
  162. 1620  PUT@A(180,240)-(324,272),PLA%,PSET,6/I,6/I,,2000
  163. 1630 NEXT
  164. 1640 SYMBOL(72,122),"HYPER STRIPE",2.5!,2,%5,,,1
  165. 1650 SYMBOL(70,120),"HYPER STRIPE",2.5!,2,%6,,,1
  166. 1660 SYMBOL(310,180),"一 QUIZ IN THE SKY 一",1.5!,1,%7,,,1
  167. 1670 COLOR ,1:SYMBOL(262,147),"Version 1.9",1,1,%8,,,9
  168. 1680 COLOR ,0
  169. 1690 A=0:COLOR 7
  170. 1700 LOCATE 30,21:PRINT"→PLAY GAME"
  171. 1710 LOCATE 32,22:PRINT"OPTIONS"
  172. 1720 LOCATE 32,23:PRINT"EXIT"
  173. 1730 WHILE PTRIG(1)<>1
  174. 1740 WAIT 15:PA=PAD(1)
  175. 1750 BA=A
  176. 1760 IF PA=1 OR PA=5 THEN ELSE 1810
  177. 1770 A=A+(PA=1)-(PA=5)
  178. 1780 IF A>2 THEN A=0 ELSE IF A<0 THEN A=2
  179. 1790 LOCATE 30,21+BA:PRINT"  "
  180. 1800 LOCATE 30,21+A:PRINT"→"
  181. 1810 WEND
  182. 1820 IF A=2 THEN *EXIT
  183. 1830 FOR I=2 TO 1 STEP -.5!
  184. 1840  PUT@A(180,240)-(324,272),PLA%,PSET,6/I,6/I,,0
  185. 1850 NEXT
  186. 1860 '
  187. 1870 RANDOMIZE TIME
  188. 1880 CLS
  189. 1890 PALETTE 1,[80,60,80]
  190. 1900 PALETTE 2,[190,180,200]
  191. 1910 PALETTE 3,[0,200,0]
  192. 1920 PALETTE 4,[0,120,80]
  193. 1930 PALETTE 5,[180,180,180]
  194. 1940 PALETTE 6,[210,220,80]
  195. 1950 PALETTE 7,[40,220,0]
  196. 1960 PALETTE 8,[240,240,240]
  197. 1970 PALETTE 9,[240,240,0]
  198. 1980 PALETTE 10,[240,0,0]
  199. 1990 PALETTE 11,[50,50,0]
  200. 2000 IF A=1 THEN GOSUB *OPTIONS:GOTO *TITLE
  201. 2010 PALETTE 6,[110,110,0]
  202. 2020 PALETTE 7,[0,120,0]
  203. 2030 PALETTE 8,[120,120,120]
  204. 2040 GOSUB *OP_INST
  205. 2050 PALETTE 6,[210,220,80]
  206. 2060 PALETTE 7,[40,220,0]
  207. 2070 PALETTE 8,[240,240,240]
  208. 2080 RESTORE *MEN_DATA
  209. 2090 GOSUB *REPORT
  210. 2100 '
  211. 2110 *GAME
  212. 2120 A=INT(RND*(N+1))
  213. 2130 READ NO,TM
  214. 2140 FOR I=0 TO 3
  215. 2150  READ G(I),R(I),B(I)
  216. 2160 NEXT
  217. 2170 GOSUB *TURNOVER
  218. 2180 IF LV=14 THEN SYMBOL(220,100),"  最終訓練",1,1,%0,,,1:GOTO 2200
  219. 2190 SYMBOL(220,100),AKCNV$(STR$(LV))+"次訓練",1,1,%0,,,1
  220. 2200 SYMBOL(180,150),"担当教官  "+NA$(A),1,1,%3
  221. 2210 SYMBOL(230,180),"ノルマ数"+AKCNV$(STR$(NO)),1,1,%3
  222. 2220 SYMBOL(230,210),"スピード"+AKCNV$(STR$(TM)),1,1,%3
  223. 2230 WAIT 300
  224. 2240 '
  225. 2250 W=INT(RND(1)*BGK)+1
  226. 2260 IF GM=1 THEN PCD= BGCD(W):GOSUB *PLAYCD
  227. 2270 '
  228. 2280 X=A
  229. 2290 HR=0:HI=0:CK=0:PP=0:AFB=0
  230. 2300 WINDOW:VIEW:CLS
  231. 2310 PUT@A(0,290)-(639,479),PAN%
  232. 2320 '
  233. 2330 HR=1:MI=4
  234. 2340 FOR I=0 TO 3:PALETTE 12+I,[0,0,0]:NEXT
  235. 2350 GOSUB *CHIHEISEN
  236. 2360 WINDOW:VIEW
  237. 2370 FOR I=0 TO BR
  238. 2380  FOR J=0 TO 3
  239. 2390   PALETTE 12+J,[G(J)/20*I,R(J)/20*I,B(J)/20*I]
  240. 2400  NEXT
  241. 2410  WAIT 8
  242. 2420 NEXT
  243. 2430 '
  244. 2440 COLOR 6
  245. 2450 LOCATE 25,4:PRINT"HP   --|------||------|--   HIT"
  246. 2460 FOR I=5 TO 11
  247. 2470  LOCATE 28,I:PRINT"-"+SPACE$(20)+"-";
  248. 2480 NEXT
  249. 2490 FOR I=0 TO 2
  250. 2500  LOCATE 23,5+I*3:PRINT STR$(HP-1+I)+"00"
  251. 2510  LOCATE 52,5+I*3:PRINT STR$(HI+1-I)+"00"
  252. 2520 NEXT
  253. 2530 LOCATE 27,17:PRINT"LEVEL";LV
  254. 2540 LOCATE 37,8:PRINT"一v一";
  255. 2550 FOR I=1 TO HP
  256. 2560  LINE(155-14*I,347)-(167-14*I,363),PSET,%9,BF
  257. 2570 NEXT
  258. 2580 LINE(486+14*NO,346)-(486+14*NO,364),PSET,%3
  259. 2590 COLOR 7:LOCATE 62,20:PRINT"HIT ";HI;"/ ";NO
  260. 2600 LOCATE 4,22:PRINT USING"SCORE ######";SC#
  261. 2610 LOCATE 62,21:PRINT"H.P.";HP
  262. 2620 LOCATE 62,22:PRINT"A.A.M.";MI
  263. 2630 LOCATE 62,23:PRINT"ENEMY_AC 0"
  264. 2640 LOCATE 55-LEN(NA$(A)),18:PRINT NA$(A)
  265. 2650 LOCATE 6,17:PRINT"BURNER"
  266. 2660 IF INT(RND*4)=0 THEN ELSE TRI=0:GOTO *SET_AC
  267. 2670 TRI=1
  268. 2680 LOCATE 26,20:PRINT NA$(A)+":"
  269. 2690 LOCATE 28,21:PRINT"「少し荷が重そうだな。"
  270. 2700 LOCATE 28,22:PRINT"   3択にしてあげよう。」"
  271. 2710 WAIT 200
  272. 2720 '
  273. 2730 *SET_AC
  274. 2740 HR=1
  275. 2750 WINDOW:VIEW
  276. 2760 GOSUB *CHIHEISEN
  277. 2770 FOR I=0 TO 3
  278. 2780  LOCATE 24,20+I:PRINT "                                "
  279. 2790 NEXT
  280. 2800 AC=INT(RND*5)+1
  281. 2810 COLOR 7
  282. 2820 LOCATE 33,21:PRINT"NEXT ENEMY"
  283. 2830 LOCATE 33,22:PRINT" ARMOR CLASS";AKCNV$(STR$(AC))
  284. 2840 LOCATE 62,23:PRINT"ENEMY_AC";AC
  285. 2850 WAIT 150
  286. 2860 *MAIN
  287. 2870 HR=1
  288. 2880 FOR I=0 TO 3
  289. 2890  LOCATE 24,20+I:PRINT "                                "
  290. 2900 NEXT
  291. 2910 GOSUB *CHIHEISEN
  292. 2920 CK=CK+1:TCK=TCK+1
  293. 2930 IF HP=1 THEN COLOR 2:LOCATE 5,20:PRINT"*DANGER*"
  294. 2940 LINE(167,334)-(183,470),PSET,%3,BF
  295. 2950 LINE(457,334)-(473,470),PSET,%3,BF
  296. 2960 XX=INT(RND*11)-5:YY=INT(RND*11)-5
  297. 2970 PUT@A(320-144/3-40*XX,160-32/3-20*YY)-(320-144/3+144-40*XX,160-32/3+32-20*YY),PLA%,MATTE,1/3,1/3,%15,2000
  298. 2980 FOR I=20 TO 1 STEP -1
  299. 2990  BY(X,I)=BY(X,I-1)
  300. 3000 NEXT
  301. 3010 BY(X,0)=Y
  302. 3020 Y=INT(RND*LIM(X))
  303. 3030 CY=0
  304. 3040 FOR I=0 TO 20
  305. 3050  IF Y=BY(X,I) THEN CY=CY+1
  306. 3060  NEXT
  307. 3070 IF CY>0 THEN 3020
  308. 3080 A=1:T=0
  309. 3090 WINDOW:VIEW
  310. 3100 LINE(167,334)-(183,470),PSET,%3,BF
  311. 3110 LINE(457,334)-(473,470),PSET,%3,BF
  312. 3120 COLOR 7
  313. 3130 FOR I=0 TO 3:S(I)=0:NEXT
  314. 3140 FOR I=0 TO 3
  315. 3150  C=INT(RND*4)
  316. 3160  IF S(C)=1 THEN 3150
  317. 3170  E$(C)=EX$(X,Y,I):S(C)=1:AN(C)=-(I=ANS(X,Y))
  318. 3180 NEXT
  319. 3190 IF TRI=1 THEN E$(3)="***************"
  320. 3200 IF TRI=1 AND AN(3)=1 THEN 3130
  321. 3210 FOR I=0 TO 3
  322. 3220  IF I=0 THEN COLOR 2 ELSE COLOR 7
  323. 3230  E$(I)="............... "+E$(I)+" ..............."
  324. 3240  ALE=LEN(E$(I))
  325. 3250  E$(I)=MID$(E$(I),INT(ALE/2)-14,30)
  326. 3260  LOCATE 25,20+I:PRINT E$(I)
  327. 3270 NEXT
  328. 3280 COLOR 7:LOCATE 5,21:PRINT"TIME";33-T
  329. 3290 I=0:J=0:K=0:L=0:LENQ=1
  330. 3300 LE=LEN(QUE$(X,Y))
  331. 3310 Q$=SPACE$(40)+QUE$(X,Y)+SPACE$(40)
  332. 3320 COLOR 7:LOCATE 20,13
  333. 3330 IF LENQ=2 THEN A$=" "+MID$(Q$,I+2,38):LENQ=1:GOTO 3360
  334. 3340 LENQ=LEN(KMID$(Q$,L+1,1)):L=L+1
  335. 3350 A$=MID$(Q$,I+1,39)
  336. 3360 PRINT A$
  337. 3370 I=I+1
  338. 3380 WAIT 10
  339. 3390 GOSUB *KAITOU
  340. 3400 PT=PTRIG(1)
  341. 3410 IF PT=1 THEN M=0:GOTO *HANTEI
  342. 3420 IF PT=2 AND MI>0 THEN M=1:MI=MI-1:COLOR 7:LOCATE 68,22:PRINT MI:GOTO *HANTEI
  343. 3430 IF PT=4 AND AFB=0 THEN AFB=1:LINE(50,323)-(93,337),PSET,%3,BF:COLOR 6:LOCATE 28,19:PRINT"AFTER BURNER":WAIT 200:LOCATE 28,19:PRINT SPACE$(24):GOTO *MAIN
  344. 3440 IF K=0 THEN 3500
  345. 3450 J=J+1:IF J>=TM THEN J=0 ELSE 3320
  346. 3460 GOSUB *JIKAN:T=T+1
  347. 3470 IF HP=1 THEN AA=SO%(12):SO%(12)=SO%(12)*2:PCMPLAY SO%:SO%(12)=AA:GOTO 3490
  348. 3480 PCMPLAY SO%
  349. 3490 IF T>=34 THEN M=0:GOTO *HANTEI
  350. 3500 IF I<LE+41 THEN 3320 ELSE K=K+1:I=0:GOTO 3320
  351. 3510 *HANTEI
  352. 3520 LOCATE 20,13:PRINT SPACE$(41)
  353. 3530 IF AN(A-1)=1 AND T<34 THEN C=1 ELSE C=2
  354. 3540 ON C GOSUB *SEIKAI,*MATIGAI
  355. 3550 IF GM=1 THEN CDSTAT C%
  356. 3560 IF C%(1)=0 THEN IF GM=1 THEN PCD= BGCD(W):GOSUB *PLAYCD
  357. 3570 GOTO *SET_AC 
  358. 3580 '
  359. 3590 *CHIHEISEN
  360. 3600 VIEW(0,0)-(640,289):WINDOW(0,0)-(640,289)
  361. 3610 PUT@A(0,0)-(639,289),SKY%,,,,,HR*46400
  362. 3620 RETURN
  363. 3630 *KAITOU
  364. 3640 PA=PAD(1)
  365. 3650 BA=A:A=A+(PA=1)-(PA=5)
  366. 3660 IF A>4-TRI THEN A=1
  367. 3670 IF A<1 THEN A=4-TRI
  368. 3680 IF PA=1 OR PA=5 THEN ELSE 3710
  369. 3690 COLOR 7
  370. 3700 LOCATE 25,19+BA:PRINT E$(BA-1)
  371. 3710 COLOR 2
  372. 3720 LOCATE 25,19+A:PRINT E$(A-1)
  373. 3730 RETURN
  374. 3740 *SEIKAI
  375. 3750 TPP=TPP+1:PP=PP+1
  376. 3760 SC#=SC#+(40-T)*10
  377. 3770 COLOR 6:LOCATE 5,23:PRINT"GOOD!"
  378. 3780 VIEW(0,0)-(640,289):WINDOW(0,0)-(640,289)
  379. 3790 HR=SGN(XX)+1
  380. 3800 GOSUB *CHIHEISEN
  381. 3810 A=INT(RND*2400)-1200:LX=INT(RND*60)-30:LY=INT(RND*60)-30
  382. 3820 IF M=0 THEN LX=LX/5:LY=LY/5
  383. 3830 PUT@A(248+LX,144+LY)-(392+LX,176+LY),PLA%,MATTE,1,1,%15,2000-SGN(INT(HR/2))*2000
  384. 3840 LINE(310+LX,155+LY)-(330+LX,175+LY),PSET,%3,B
  385. 3850 IF M=1 THEN 3950
  386. 3860 PCMPLAY VUL%,100
  387. 3870 FOR I=2 TO 15
  388. 3880  CIRCLE(320,160+200/I),40/I,%6,,,,F
  389. 3890 NEXT
  390. 3900 WAIT 30
  391. 3910 AC=AC-1
  392. 3920 COLOR 7:LOCATE 62,23:PRINT"ENEMY_AC";AC
  393. 3930 IF AC>0 THEN 4180
  394. 3940 GOTO 4010
  395. 3950 'PLAY"V15@7O3B1"
  396. 3960 BEEP 363523,8,5000:BEEP:WAIT 15:BEEP:WAIT 10
  397. 3970 AC=0
  398. 3980 FOR I=5 TO 100 STEP 2
  399. 3990  CIRCLE(320+LX-A/I,160+LY+1000/I),400/(I+5),%5,,,,F
  400. 4000 NEXT
  401. 4010 PCMPLAY BAN%,100
  402. 4020 FOR I=0 TO 20
  403. 4030  CIRCLE(280+LX+RND*80,120+LY+RND*80),RND*25+10,%+6+INT(RND*3),,,,F
  404. 4040 NEXT
  405. 4050 WINDOW:VIEW
  406. 4060 HI=HI+1
  407. 4070 COLOR 7:LOCATE 62,20:PRINT"HIT ";HI;"/ ";NO
  408. 4080 COLOR 6:LOCATE 52,5+6:PRINT SPACE$(4)
  409. 4090 FOR I=0 TO 2:WAIT 20
  410. 4100  FOR J=0 TO 1
  411. 4110   LOCATE 52,5+I+J*3:PRINT SPACE$(4)
  412. 4120  NEXT
  413. 4130  FOR J=0 TO 1
  414. 4140   LOCATE 52,5+I+J*3+1:PRINT STR$(HI-J)+"00"
  415. 4150 NEXT J,I
  416. 4160 LOCATE 52,5:PRINT STR$(HI+1)+"00"
  417. 4170 LINE(473+14*HI,347)-(485+14*HI,363),PSET,%10,BF
  418. 4180 COLOR 6:WINDOW:VIEW
  419. 4190 FOR I=T TO 33
  420. 4200  LINE(167,334+I*4)-(183,338+I*4),PSET,%0,BF
  421. 4210  LINE(457,334+I*4)-(473,338+I*4),PSET,%0,BF
  422. 4220  LOCATE 4,22:PRINT USING"SCORE  +###";(7-T+I)*10
  423. 4230  WAIT 3
  424. 4240 NEXT
  425. 4250 WAIT 50
  426. 4260 COLOR 7:LOCATE 4,22:PRINT USING"SCORE ######";SC#
  427. 4270 LOCATE 5,23:PRINT SPACE$(8)
  428. 4280 IF AC>0 THEN RETURN *MAIN
  429. 4290 IF HI=NO THEN RETURN *MENKURI
  430. 4300 RETURN
  431. 4310 *MATIGAI
  432. 4320 COLOR 6:LOCATE 5,23:PRINT"NO GOOD!"
  433. 4330 BEEP 363523,5,50
  434. 4340 FOR I=0 TO 5:BEEP:WAIT 10:NEXT
  435. 4350 HR=-SGN(XX)+1
  436. 4360 GOSUB *CHIHEISEN
  437. 4370 PUT@A(248-40*XX,144+20*YY)-(392-40*XX,176+20*YY),PLA%,MATTE,1,1,%15,2000-SGN(INT(XX/2))*2000
  438. 4380 IF M=0 THEN 4440
  439. 4390 'PLAY"V15@7O3B1"
  440. 4400 A=INT(RND*2400)-1200:LX=INT(RND*60)-30:LY=INT(RND*60)-30
  441. 4410 FOR I=5 TO 100 STEP 2
  442. 4420  CIRCLE(320+LX-A/I,160+LY+1000/I),400/(I+5),%5,,,,F
  443. 4430 NEXT
  444. 4440 PCMPLAY VUL%,90
  445. 4450 FOR I=0 TO 3
  446. 4460  PALETTE 12+I,2
  447. 4470 NEXT
  448. 4480 WAIT 15
  449. 4490 FOR I=0 TO 3
  450. 4500  PALETTE 12+I,[G(I)*BR/20,R(I)*BR/20,B(I)*BR/20]
  451. 4510 NEXT
  452. 4520 WAIT 50
  453. 4530 GOSUB *CHIHEISEN
  454. 4540 WINDOW:VIEW
  455. 4550 LINE(155-14*HP,347)-(167-14*HP,363),PSET,%0,BF
  456. 4560 HP=HP-1
  457. 4570 COLOR 7:LOCATE 62,21:PRINT"H.P.";HP
  458. 4580 COLOR 6:LOCATE 23,5+6:PRINT SPACE$(5)
  459. 4590 FOR I=0 TO 2:WAIT 20
  460. 4600  FOR J=0 TO 1
  461. 4610   LOCATE 23,5+I+J*3:PRINT SPACE$(5)
  462. 4620  NEXT
  463. 4630  FOR J=0 TO 1
  464. 4640   LOCATE 23,5+I+J*3+1:PRINT LEFT$(STR$(HP+J)+"00 ",5)
  465. 4650 NEXT J,I
  466. 4660 LOCATE 23,5:PRINT LEFT$(STR$(HP-1)+"00 ",5)
  467. 4670 LOCATE 5,23:PRINT SPACE$(8)
  468. 4680 IF HP=0 THEN RETURN *GAMEOVER
  469. 4690 RETURN *MAIN
  470. 4700 *JIKAN
  471. 4710 WINDOW:VIEW
  472. 4720 LINE(167,334+T*4)-(183,338+T*4),PSET,%0,BF
  473. 4730 LINE(457,334+T*4)-(473,338+T*4),PSET,%0,BF
  474. 4740 COLOR 7:LOCATE 5,21:PRINT"TIME";33-T
  475. 4750 RETURN
  476. 4760 *MENKURI
  477. 4770 WINDOW:VIEW
  478. 4780 CLS 4
  479. 4790 SYMBOL(50,120),"MISSION COMPLETED",2,2,%9,,,1
  480. 4800 WAIT 100
  481. 4810 IF GM=1 THEN PCD= CLCD:GOSUB *PLAYCD
  482. 4820 FOR I=0 TO 240
  483. 4830 LINE(0,I*2)-(640,I*2),PSET,%0,BF
  484. 4840 LINE(0,479-I*2)-(640,479-I*2),PSET,%0,BF
  485. 4850 NEXT
  486. 4860 GOSUB *REPORT
  487. 4870 SYMBOL(180,110),"CONGRATULATIONS!",1,1,%3,,,1
  488. 4880 SYMBOL(210,150),"今訓練の成績",1,1,%0,,,1
  489. 4890 RATE=INT(PP/CK*100)
  490. 4900 SYMBOL(180,180),"命中率"+AKCNV$(STR$(RATE))+"%",1,1,%4
  491. 4910 SYMBOL(180,210),"BONUS  SCORE"+AKCNV$(STR$(RATE*10)),1,1,%4,,,1
  492. 4920 SYMBOL(180,230),"            H.P.   +1",1,1,%4,,,1
  493. 4930 IF RATE<100 THEN 4970
  494. 4940 SYMBOL(180,255),"PERFECT BONUS",1,1,%4,,,1
  495. 4950 SYMBOL(180,275),"      SCORE 1000  H.P. +1",1,1,%4,,,1
  496. 4960 SC#=SC#+1000:HP=HP+1
  497. 4970 SC#=SC#+RATE*10
  498. 4980 SYMBOL(180,310),"SCORE"+AKCNV$(STR$(SC#)),1,1,%4
  499. 4990 IF LV=14 THEN *ENDING
  500. 5000 HP=HP+1
  501. 5010 IF HP>10 THEN HP=10
  502. 5020 LV=LV+1
  503. 5030 WAIT 400
  504. 5040 IF (LV MOD 3)=0 THEN ON (LV/3 MOD 2)+1 GOSUB *SUBGAME2,*SUBGAME
  505. 5050 GOTO *GAME
  506. 5060 *GAMEOVER
  507. 5070 VIEW(0,0)-(640,289):WINDOW(0,0)-(640,289)
  508. 5080 PCMPLAY BAN%,80
  509. 5090 PALETTE 15,[0,255,0]
  510. 5100 COLOR,7:CLS:COLOR,0
  511. 5110 PCMPLAY BAN%,110
  512. 5120 FOR I=24 TO 0 STEP -1
  513. 5130  PALETTE 15,[0,10*I,0]
  514. 5140  IF I=15 THEN PCMPLAY BAN%,60
  515. 5150  WAIT 10
  516. 5160 NEXT
  517. 5170 PCMPLAY BAN%,127
  518. 5180 WINDOW:VIEW
  519. 5190 GOSUB *CLS
  520. 5200 IF PTRIG(1)=4 THEN SC#=0:HP=5:SYMBOL(200,200),"CONTINUED.",3,1,%6:GOTO 2170
  521. 5210 COLOR,0
  522. 5220 SYMBOL(100,120),"GAME OVER",3,2,%3,,,1
  523. 5230 SYMBOL(200,200),"SCORE "+AKCNV$(STR$(SC#)),1,1,%6,,,1
  524. 5240 RATE=INT(TPP/TCK*100)
  525. 5250 SYMBOL(200,225),"総命中率   "+AKCNV$(STR$(RATE))+"%",1,1,%6,,,1
  526. 5260 SYMBOL(200,250),"到達レベル "+AKCNV$(STR$(LV)),1,1,%6,,,1
  527. 5270 IF GM=1 THEN CD STOP
  528. 5280 WAIT 300
  529. 5290 PALETTE 2,[0,0,0]
  530. 5300 SYMBOL(350,300),"PUSH 'A' BUTTON",1,1,%2,,,1
  531. 5310 T=0
  532. 5320 WHILE PTRIG(1)<>1
  533. 5330 PT=ABS(T-24)
  534. 5340 PALETTE 2,[0,10*PT,0]
  535. 5350 T=T+1:IF T>48 THEN T=0
  536. 5360 WAIT 3
  537. 5370 WEND
  538. 5380 WHILE PTRIG(1)<>1:WEND
  539. 5390 GOTO 1430
  540. 5400 *ENDING
  541. 5410 WAIT 300:GOSUB *CLS
  542. 5420 IF GM=1 THEN PCD= ENDCD:GOSUB *PLAYCD
  543. 5430 SCREEN@2:COLOR ,0:PALETTE
  544. 5440 A=0:B=0:RAD=3.14159!/180
  545. 5450 PALETTE 1,[100,140,200]
  546. 5460 PALETTE 2,[180,100,80]
  547. 5470 FOR I=0 TO 119
  548. 5480  LINE(0,I*2)-(639,1+I*2),PSET,%3+I,BF
  549. 5490  PALETTE 3+I,[I*2,I*1.4!,240]
  550. 5500 NEXT
  551. 5510 FOR I=0 TO 119
  552. 5520  LINE(0,I*2+240)-(639,1+I*2+240),PSET,%3+I+120,BF
  553. 5530  PALETTE 3+I+120,[220,200-I,200-I]
  554. 5540 NEXT
  555. 5550 SYMBOL(80,115),"ALL CLEAR!",3,2,6,,,1
  556. 5560 SYMBOL(200,220),"SCORE "+AKCNV$(STR$(SC#)),1,1,6,,,1
  557. 5570 RATE=INT(TPP/TCK*100)
  558. 5580 '  PALETTE 3+I,[I*J/100,I/3*2*J/100,240*J/100]
  559. 5590 SYMBOL(200,245),"総命中率   "+AKCNV$(STR$(RATE))+"%",1,1,6,,,1
  560. 5600 WAIT 500
  561. 5610 GOSUB *CLS
  562. 5620 OUT &H440,17:OUT &H443,-240
  563. 5630 OUT &H440,21:OUT &H443,-240
  564. 5640 WINDOW(0,0)-(640,511):VIEW(0,0)-(640,511)
  565. 5650 RESTORE *END_DATA
  566. 5660 READ A$
  567. 5670 IF A$="*" THEN 5840
  568. 5680 LINE(0,A)-(640,A+31),PRESET,,BF
  569. 5690 X=VAL(LEFT$(A$,1))
  570. 5700 IF A$="" THEN 5720
  571. 5710 A$=RIGHT$(A$,LEN(A$)-1)
  572. 5720 SYMBOL(60,A),A$,1,1,%X
  573. 5730 FOR I=0 TO 15
  574. 5740  A=A+2
  575. 5750  IF A>511 THEN A=A-512
  576. 5760  OUT &H440,17:OUT &H443,(A-480)/2
  577. 5770  OUT &H440,21:OUT &H443,(A-480)/2
  578. 5780  WAIT 8
  579. 5790  C=SIN(B*RAD):D=-SIN(B*1.5!*RAD):E=SIN(B*2*RAD)
  580. 5800  PALETTE 0,[40+C*40,40+D*40,40+E*40]
  581. 5810  B=B+2
  582. 5820 NEXT
  583. 5830 GOTO 5660
  584. 5840 PALETTE 0,[205,205,205]
  585. 5850 FOR I=0 TO 100
  586. 5860  PALETTE 1,[100+I*1.4!,140+I,200+I*.4!]
  587. 5870  PALETTE 0,[200-I*2,200-I*2,200-I*2]
  588. 5880  BEEP 363523,30,1000+I*80:BEEP
  589. 5890  WAIT 4
  590. 5900 NEXT
  591. 5910 WHILE PTRIG(1)<>1:WEND
  592. 5920 SCREEN@0:GOTO *TITLE
  593. 5930 *CLS
  594. 5940 FOR I=0 TO 240
  595. 5950  LINE(0,I*2)-(640,I*2),PSET,%0,BF
  596. 5960  LINE(0,479-I*2)-(640,479-I*2),PSET,%0,BF
  597. 5970 NEXT
  598. 5980 RETURN
  599. 5990 *PROFILE
  600. 6000 J=0:WAIT 100
  601. 6010 GOSUB *TURNOVER
  602. 6020 SYMBOL(210,80),"教官データ",1,1,%3,,,1
  603. 6030 SYMBOL(180,120),"名前  "+NA$(J),1,1,%0
  604. 6040 SYMBOL(180,150),"性別  "+SX$(J),1,1,%0
  605. 6050 SYMBOL(180,180),"年令"+AKCNV$(STR$(AG(J))),1,1,%0
  606. 6060 SYMBOL(180,210),"性格  "+SE$(J),1,1,%0
  607. 6070 SYMBOL(180,240),"問題傾向  "+KE$(J),1,1,%0
  608. 6080 SYMBOL(180,270),"問題数  "+AKCNV$(STR$(LIM(J))),1,1,%0
  609. 6090 SYMBOL(280,400),"↓を押してください",1,1,%4
  610. 6100 IF PTRIG(1)=1 THEN RETURN
  611. 6110 IF PAD(1)=5 THEN ELSE 6100
  612. 6120 J=J+1:IF J>N THEN J=0
  613. 6130 GOTO 6010
  614. 6140 RETURN
  615. 6150 *REPORT
  616. 6160 CLS
  617. 6170 LINE(150,40)-(479,439),PSET,%8,BF
  618. 6180 LINE(150,40)-(479,59),PSET,%5,BF
  619. 6190 RETURN
  620. 6200 *TURNOVER
  621. 6210 FOR I=1 TO 380
  622. 6220  IF I=<200 THEN LINE(150,440-2*I)-(479,441-2*I),PSET,%5,BF
  623. 6230  LINE(150,440-I)-(479,440-I),PSET,%8
  624. 6240 NEXT
  625. 6250 RETURN
  626. 6260 *SUBGAME
  627. 6270 WINDOW:VIEW:CLS
  628. 6280 SYMBOL(100,60),"BONUS GAME",2,1.6!,%3,,,1
  629. 6290 SYMBOL(300,90),"Shoot enemy.",1.5!,1,%10,,,1
  630. 6300 COLOR 6:LOCATE 39,12:PRINT"+";
  631. 6310 LOCATE 19,20:PRINT"| 2UP |2000Pts.| 1UP |1000Pts.|";
  632. 6320 COLOR 2
  633. 6330 FOR I=0 TO 19:LOCATE 20+I*2,21:PRINT"■";:NEXT
  634. 6340 TM=20:T=0
  635. 6350 WINDOW(160,120)-(480,360):VIEW(160,120)-(480,360)
  636. 6360 EX=INT(RND*100)-50
  637. 6370 EY=INT(RND*(100-ABS(EX))*2)-(100-ABS(EX))
  638. 6380 NB=0:WB=0
  639. 6390 PA=PAD(1)
  640. 6400 NM=-((PA=8 OR PA=1 OR PA=2)-(PA=4 OR PA=5 OR PA=6))*20*RV
  641. 6410 NB=NB+NM:NB=NB-SGN(NB)*6
  642. 6420 IF ABS(NB)>60 THEN NB=SGN(NB)*60:NM=0
  643. 6430 WM=((PA=2 OR PA=3 OR PA=4)-(PA=6 OR PA=7 OR PA=8))*40
  644. 6440 WB=WB+WM:WB=WB-SGN(WB)*12
  645. 6450 IF ABS(WB)>120 THEN WB=SGN(WB)*120:WM=0
  646. 6460 EY=EY-NB/5-NM
  647. 6470 EX=EX+WB/5+WM
  648. 6480 IF ABS(EX)>200 OR ABS(EY)>150 THEN 6510
  649. 6490 EX=EX-SGN(EX)*10*(INT(RND*2)=0)
  650. 6500 EY=EY-SGN(EY)*10*(INT(RND*2)=0)
  651. 6510 L=240-NB-WB:R=240-NB+WB
  652. 6520 CONNECT(159,119)-(481,119)-(481,R)-(159,L),%13,PSET,F,%12
  653. 6530 CONNECT(159,361)-(481,361)-(481,R+1)-(159,L+1),%14,PSET,F,%15
  654. 6540 PUT@A(-160+284+EX,-120+232+EY+WB/160*EX)-(-160+284+72+EX,-120+232+16+EY+WB/160*EX),PLB%,MATTE,1,1,%15,500-SGN(INT(WM/30))*500
  655. 6550 T=T+1
  656. 6560 IF T=10 THEN T=0:LOCATE 60-TM*2,21:PRINT"  ";:TM=TM-1
  657. 6570 IF TM=0 THEN GOTO 6630
  658. 6580 WAIT 1
  659. 6590 IF PTRIG(1)<>1 THEN 6390
  660. 6600 PCMPLAY VUL%
  661. 6610 LINE(320,360)-(320,240),PSET,%8,,&HCCCC
  662. 6620 IF ABS(EX)<36 AND ABS(EY+WB/160*EX)<8 THEN ELSE 6390
  663. 6630 WINDOW:VIEW
  664. 6640 COLOR 7:LOCATE 40,22
  665. 6650 ON INT((TM-1)/5)+1 GOTO 6700,6690,6680,6670,6660
  666. 6660 PRINT"NO GOOD.";:GOTO 6770
  667. 6670 PRINT"H.P. +2";:HP=HP+2:GOTO 6710
  668. 6680 PRINT"SCORE +2000";:SC#=SC#+2000:GOTO 6710
  669. 6690 PRINT"H.P. +1";:HP=HP+1:GOTO 6710
  670. 6700 PRINT"SCORE +1000";:SC#=SC#+1000
  671. 6710 LOCATE 28,22:PRINT"BONUS";
  672. 6720 PCMPLAY BAN%
  673. 6730 FOR I=0 TO 20
  674. 6740  CIRCLE(305+EX+RND*30,228+EY+RND*24),RND*15+5,%+6+INT(RND*3),,,,F
  675. 6750 NEXT
  676. 6760 IF HP>10 THEN HP=10
  677. 6770 WAIT 100
  678. 6780 GOSUB *REPORT
  679. 6790 RETURN
  680. 6800 *SUBGAME2
  681. 6810 WINDOW:VIEW:CLS
  682. 6820 SYMBOL(100,60),"BONUS GAME",2,1.6!,%3,,,1
  683. 6830 SYMBOL(400,90),"Landing.",1.5!,1,%10,,,1
  684. 6840 COLOR 6:LOCATE 39,12:PRINT"+";
  685. 6850 LOCATE 19,20:PRINT"| 2UP |2000Pts.| 1UP |1000Pts.|";
  686. 6860 COLOR 2
  687. 6870 FOR I=0 TO 19:LOCATE 20+I*2,21:PRINT"■";:NEXT
  688. 6880 TM=20:T=0
  689. 6890 WINDOW(160,120)-(480,360):VIEW(160,120)-(480,360)
  690. 6900 Y=1000:H=1
  691. 6910 WHILE Y>1 AND TM>0
  692. 6920 PT=PAD(1)
  693. 6930 BH=H:H=H+((PT=1)-(PT=5))*RV
  694. 6940 IF ABS(H)>12 THEN H=BH
  695. 6950 Y=Y-2+H:LOCATE 63,12:PRINT USING "###.#m";Y/5
  696. 6960 LINE(159,119)-(481,239+H*10),PSET,%13,BF,%12
  697. 6970 LINE(159,361)-(481,240+H*10),PSET,%14,BF,%15
  698. 6980 L=2000/(200-H*10+Y*60)*(200-H*10)
  699. 6990 CONNECT(320,241+H*10)-(320-L,360)-(320+L,360),%1,,F
  700. 7000 T=T+1
  701. 7010 IF T=20 THEN T=0:LOCATE 60-TM*2,21:PRINT"  ";:TM=TM-1
  702. 7020 WAIT 1
  703. 7030 WEND
  704. 7040 COLOR 7:LOCATE 40,22
  705. 7050 IF H<-1 OR H>2 THEN PCMPLAY BAN%,120:GOTO 7070
  706. 7060 ON INT((TM-1)/5)+1 GOTO 7110,7100,7090,7080,7070
  707. 7070 PRINT"NO GOOD.";:GOTO 7130
  708. 7080 PRINT"H.P. +2";:HP=HP+2:GOTO 7120
  709. 7090 PRINT"SCORE +2000";:SC#=SC#+2000:GOTO 7120
  710. 7100 PRINT"H.P. +1";:HP=HP+1:GOTO 7120
  711. 7110 PRINT"SCORE +1000";:SC#=SC#+1000
  712. 7120 LOCATE 28,22:PRINT"BONUS";
  713. 7130 IF HP>10 THEN HP=10
  714. 7140 WINDOW:VIEW
  715. 7150 WAIT 100
  716. 7160 GOSUB *REPORT
  717. 7170 RETURN
  718. 7180 *OPTIONS
  719. 7190 A=0:CLS:COLOR 7
  720. 7200 A$(0)="REVERSE":A$(2)="NORMAL "
  721. 7210 B$(0)="OFF":B$(1)="ON "
  722. 7220 LOCATE 30,4:PRINT"OPTIONS"
  723. 7230 LOCATE 20,7:PRINT"→ボーナスゲーム時の操作   ";A$(RV+1)
  724. 7240 LOCATE 22,9:PRINT  "CD BGM       ";B$(GM)
  725. 7250 LOCATE 22,11:PRINT "CD曲番号の選択"
  726. 7260 LOCATE 22,13:PRINT "教官(出題者)プロフィール"
  727. 7270 LOCATE 22,15:PRINT "INSTRUCTION"
  728. 7280 LOCATE 22,17:PRINT "EXIT"
  729. 7290 WAIT 15
  730. 7300 PA=PAD(1)
  731. 7310 PT=PTRIG(1)
  732. 7320 IF A=0 AND((PA=3 OR PA=7)OR PT=1) THEN RV=(RV=1)-(RV=-1):LOCATE 47,7:PRINT A$(RV+1);
  733. 7330 IF A=1 AND((PA=3 OR PA=7)OR PT=1) THEN GM=-(GM=0):LOCATE 47,9:PRINT B$(GM);
  734. 7340 IF A=2 AND PT=1 AND GM=1 THEN GOSUB *SELECT:GOTO *OPTIONS
  735. 7350 IF A=3 AND PT=1 THEN GOSUB *REPORT:GOSUB *PROFILE:GOTO *OPTIONS
  736. 7360 IF A=4 AND PT=1 THEN GOSUB *INST:GOTO *OPTIONS
  737. 7370 IF A=5 AND PT=1 THEN RETURN
  738. 7380 BA=A
  739. 7390 A=A+(PA=1)-(PA=5)
  740. 7400 IF A>5 THEN A=0 ELSE IF A<0 THEN A=5
  741. 7410 IF BA=A THEN 7290
  742. 7420 LOCATE 20,7+BA*2:PRINT"  ";
  743. 7430 LOCATE 20,7+A*2:PRINT"→";
  744. 7440 GOTO 7290
  745. 7450 *SELECT
  746. 7460 CLS:A=0
  747. 7470 CDINF C%:L=-(C%(1)=3)+1:H=C%(5)
  748. 7480 LOCATE 30,4:PRINT"CD曲番号の選択"
  749. 7490 LOCATE 20,7:PRINT"→オープニングの曲番";AKCNV$(STR$(OPNCD))
  750. 7500 LOCATE 22,9:PRINT  "プレイ中の曲数    ";AKCNV$(STR$(BGK))
  751. 7510 LOCATE 22,11:PRINT "プレイ中の曲番"
  752. 7520 FOR I=1 TO BGK
  753. 7530  LOCATE 39+I*3,11:PRINT BGCD(I)
  754. 7540 NEXT
  755. 7550 LOCATE 22,13:PRINT "面クリア時の曲番  ";AKCNV$(STR$(CLCD))
  756. 7560 LOCATE 22,15:PRINT "エンディングの曲番";AKCNV$(STR$(ENDCD))
  757. 7570 LOCATE 22,17:PRINT "DATA SAVE"
  758. 7580 LOCATE 22,19:PRINT "EXIT"
  759. 7590 WAIT 15
  760. 7600 PA=PAD(1)
  761. 7610 IF A=0 AND(PA=3 OR PA=7) THEN AA=OPNCD+(PA=7)-(PA=3):OPNCD=-AA*(AA>=L AND AA=<H)-L*(AA>H)-H*(AA<L):LOCATE 40,7:PRINT AKCNV$(STR$(OPNCD))+"  "
  762. 7620 IF A=1 AND(PA=3 OR PA=7) THEN B=BGK:AA=BGK+(PA=7)-(PA=3):BGK=-AA*(AA>=1 AND AA=<10)-(AA>10)-10*(AA<1):LOCATE 40,9:PRINT AKCNV$(STR$(BGK))+"  ":LOCATE 42,11:PRINT SPACE$(B*3):FOR I=1 TO BGK:LOCATE 39+I*3,11:PRINT BGCD(I):NEXT
  763. 7630 IF A=3 AND(PA=3 OR PA=7) THEN AA=CLCD+(PA=7)-(PA=3):CLCD=-AA*(AA>=L AND AA=<H)-L*(AA>H)-H*(AA<L):LOCATE 40,13:PRINT AKCNV$(STR$(CLCD))+"  "
  764. 7640 IF A=4 AND(PA=3 OR PA=7) THEN AA=ENDCD+(PA=7)-(PA=3):ENDCD=-AA*(AA>=L AND AA=<H)-L*(AA>H)-H*(AA<L):LOCATE 40,15:PRINT AKCNV$(STR$(ENDCD))+"  "
  765. 7650 IF A=2 AND(PA=3 OR PA=7) THEN GOSUB *S_BGCD
  766. 7660 PT=PTRIG(1)
  767. 7670 IF A=5 AND PT=1 THEN GOSUB *CDSAVE
  768. 7680 IF A=6 AND PT=1 THEN RETURN
  769. 7690 BA=A
  770. 7700 A=A+(PA=1)-(PA=5)
  771. 7710 IF A>6 THEN A=0 ELSE IF A<0 THEN A=6
  772. 7720 IF BA=A THEN 7590
  773. 7730 LOCATE 20,7+BA*2:PRINT"  ";
  774. 7740 LOCATE 20,7+A*2:PRINT"→";
  775. 7750 GOTO 7590
  776. 7760 *S_BGCD
  777. 7770 IF PA=3 THEN J=1 ELSE J=BGK
  778. 7780 LOCATE 39+J*3,11:PRINT">"
  779. 7790 WAIT 10
  780. 7800 PA=PAD(1)
  781. 7810 IF PA=1 OR PA=5 THEN AA=BGCD(J)+(PA=5)-(PA=1):BGCD(J)=-AA*(AA>=L AND AA=<H)-L*(AA>H)-H*(AA<L):LOCATE 39+J*3,11:PRINT">"+MID$(STR$(BGCD(J)),2,2)+" "
  782. 7820 BJ=J
  783. 7830 J=J+(PA=7)-(PA=3)
  784. 7840 IF J<1 OR J>BGK THEN LOCATE 39+BJ*3,11:PRINT" ":RETURN
  785. 7850 IF BJ=J THEN 7790
  786. 7860 LOCATE 39+BJ*3,11:PRINT" ";
  787. 7870 LOCATE 39+J*3,11:PRINT">";
  788. 7880 GOTO 7790
  789. 7890 *CDSAVE
  790. 7900 KILL"CDDATA.DAT"
  791. 7910 OPEN "O",1,"CDDATA.DAT"
  792. 7920 PRINT#1,OPNCD     'オープニング音楽
  793. 7930 PRINT#1,BGK       'BGMの数
  794. 7940 FOR I=1 TO BGK
  795. 7950  PRINT#1,BGCD(I)  'BGM
  796. 7960 NEXT
  797. 7970 PRINT#1,CLCD      '面クリア時の音楽
  798. 7980 PRINT#1,ENDCD     'エンディング音楽
  799. 7990 CLOSE
  800. 8000 RETURN
  801. 8010 *INST
  802. 8020 RESTORE *INST_DATA
  803. 8030 CLS:A=1
  804. 8040 READ A$:A=A+1
  805. 8050 IF A$="*" THEN WHILE PTRIG(1)<>1:WEND:RETURN
  806. 8060 LOCATE 10,1+A:PRINT A$
  807. 8070 GOTO 8040
  808. 8080 *PLAYCD
  809. 8090 CD PLAY PCD
  810. 8100 RETURN
  811. 8110 *EXIT
  812. 8120 CLS 4
  813. 8130 FOR I=0 TO 150 STEP 2
  814. 8140  LINE(320-I,340-I/3)-(320+I,340+I/3),PSET,%6,BF,%0
  815. 8150 NEXT
  816. 8160 COLOR 7:LOCATE 29,17:PRINT"ゲームを終了しますか?"
  817. 8170         LOCATE 29,18:PRINT"     Yes=B No=A"
  818. 8180 PT=0
  819. 8190 WHILE PT<>1 AND PT<>2
  820. 8200 PT=PTRIG(1)
  821. 8210 WEND
  822. 8220 IF PT=1 THEN *TITLE 
  823. 8230 CLS 4:GOSUB *CLS
  824. 8240 LOCATE 8,5:PRINT"Thank you for your playing."
  825. 8250 LOCATE 30,7:PRINT"See you again!"
  826. 8260 LOCATE 13,10:PRINT"Copyright(c)KIM [Takehfumi Kimura]1993"
  827. 8270 IF GM=1 THEN CD STOP
  828. 8280 PALETTE:ERASE SKY%
  829. 8290 DIM AA%(40000):COLOR ,1
  830. 8300 RESTORE *EXIT_DATA:X=0
  831. 8310 READ A$
  832. 8320 IF A$="*" THEN X=1:I=0:A$="":GOTO 8370
  833. 8330 GET@A(0,240)-(639,479),AA%
  834. 8340 PUT@A(65,240)-(704,479),AA%,,.8!,.8!
  835. 8350 LINE(0,440)-(640,480),PSET,0,BF
  836. 8360 SYMBOL(320-LEN(A$)*8,440),A$,2,2,%1,,,5
  837. 8370 I=I+1
  838. 8380 IF X=1 THEN PALETTE 1,[0,0,128-I*16]:PALETTE 9,[0,0,256-I*32]
  839. 8390 IF X=0 THEN 8310 ELSE IF I=8 THEN ELSE 8330
  840. 8400 COLOR ,0
  841. 8410 END
  842. 8420 *OP_INST
  843. 8430 RESTORE *MEN_DATA
  844. 8440 READ NO,TM
  845. 8450 FOR I=0 TO 3
  846. 8460  READ G(I),R(I),B(I)
  847. 8470  PALETTE 12+I,[0,0,0]
  848. 8480 NEXT
  849. 8490 HR=1:GOSUB *CHIHEISEN
  850. 8500 WINDOW:VIEW
  851. 8510 PUT@A(0,290)-(639,479),PAN%
  852. 8520 CONSOLE 6,9,0
  853. 8530 COLOR 7:LOCATE 62,20:PRINT"HIT  0 / 5"
  854. 8540 LOCATE 62,21:PRINT"H.P. 5"
  855. 8550 LOCATE 62,22:PRINT"A.A.M. 4"
  856. 8560 LOCATE 62,23:PRINT"ENEMY_AC 0"
  857. 8570 COLOR 7:LOCATE 6,17:PRINT"BURNER"
  858. 8580 LOCATE 36,4:PRINT"操作説明"
  859. 8590 FOR I=0 TO 10
  860. 8600  IF PTRIG(1)=1 THEN I=10:NEXT:GOTO 9230
  861. 8610  FOR J=0 TO 3
  862. 8620   PALETTE 12+J,[G(J)/20*I,R(J)/20*I,B(J)/20*I]
  863. 8630  NEXT
  864. 8640  WAIT 8
  865. 8650 NEXT
  866. 8660 COLOR 6
  867. 8670 LOCATE 10,7:PRINT"パッドの上下で答を選んで、AボタンまたはBボタンで解答します"
  868. 8680 LOCATE 26,10:PRINT"問題文はここに出ます"
  869. 8690 LOCATE 45,12:PRINT"選択肢はここに出ます"
  870. 8700 LINE(250,210)-(300,250),PSET,%10
  871. 8710 LINE(420,245)-(340,420),PSET,%10
  872. 8720 COLOR 7:LOCATE 23,13:PRINT"- - - - - - - 問 題 - - - - - - - -"
  873. 8730 FOR I=0 TO 3
  874. 8740  IF I=0 THEN COLOR 2 ELSE COLOR 7
  875. 8750  LOCATE 25,20+I:PRINT"............ 答";I+1;"............"
  876. 8760 NEXT
  877. 8770 GOSUB *CLS_2:COLOR 6
  878. 8780 PUT@A(248,144)-(392,176),PLA%,MATTE,1,1,%15,2000
  879. 8790 LOCATE 10,7:PRINT"Aボタンを押すと、バルカン砲を撃ちます(弾数制限はありません)"
  880. 8800 PCMPLAY VUL%,100
  881. 8810 VIEW(0,0)-(640,289):WINDOW(0,0)-(640,289)
  882. 8820 FOR I=2 TO 15
  883. 8830  CIRCLE(320,160+200/I),40/I,%6,,,,F
  884. 8840 NEXT
  885. 8850 WINDOW:VIEW
  886. 8860 LOCATE 20,9:PRINT"正解すると、敵のACが1下がります"
  887. 8870 LOCATE 26,10:PRINT"ACが0になったらみごと撃墜です"
  888. 8880 LOCATE 32,12:PRINT"ACはここに出ます"
  889. 8890 LINE(350,245)-(490,445),PSET,%10
  890. 8900 GOSUB *CLS_2
  891. 8910 PUT@A(248,144)-(392,176),PLA%,MATTE,1,1,%15,2000
  892. 8920 LOCATE 10,7:PRINT"Bボタンを押すと、ミサイルが発射されます"
  893. 8930 LOCATE 8,9:PRINT"正解すればACに関係なく撃墜できますが、各面につき4発しかありません"
  894. 8940 VIEW(0,0)-(640,289):WINDOW(0,0)-(640,289)
  895. 8950 FOR I=5 TO 100 STEP 2
  896. 8960  CIRCLE(320+LX-A/I,160+LY+1000/I),400/(I+5),%8,,,,F
  897. 8970 NEXT
  898. 8980 PCMPLAY BAN%,100
  899. 8990 FOR I=0 TO 20
  900. 9000  CIRCLE(280+LX+RND*80,120+LY+RND*80),RND*25+10,%+6+INT(RND*3),,,,F
  901. 9010 NEXT
  902. 9020 WINDOW:VIEW
  903. 9030 LOCATE 32,11:PRINT"ミサイル残数はここに出ます"
  904. 9040 LINE(350,230)-(490,425),PSET,%10
  905. 9050 GOSUB *CLS_2
  906. 9060 LOCATE 10,7:PRINT"ノルマ数だけ敵を撃墜すると、面クリアです"
  907. 9070 LOCATE 40,9:PRINT"撃墜数などはここに出ます"
  908. 9080 LINE(370,188)-(490,385),PSET,%10
  909. 9090 LINE(370,188)-(520,355),PSET,%10
  910. 9100 GOSUB *CLS_2
  911. 9110 LOCATE 10,8:PRINT"誤答するとH.P.が減っていき、0になるとゲームオーバーです"
  912. 9120 LOCATE 25,11:PRINT"H.P.はここに出ます"
  913. 9130 LINE(250,228)-(490,405),PSET,%10
  914. 9140 LINE(250,228)-(100,355),PSET,%10
  915. 9150 GOSUB *CLS_2
  916. 9160 LOCATE 15,7:PRINT"RUNボタンを押すとアフターバーナーがかかり、"
  917. 9170 LOCATE 20,8:PRINT"わからない問題をスキップすることができます"
  918. 9180 LOCATE 28,10:PRINT"しかし1面につき1回しか使用できません"
  919. 9190 LINE(50,323)-(93,337),PSET,%3,BF
  920. 9200 GOSUB *CLS_2
  921. 9210 CLS 2:LOCATE 26,8:PRINT"それではご健闘をお祈りします"
  922. 9220 GOSUB *CLS_2
  923. 9230 CONSOLE 0,25,0:GOSUB *CLS
  924. 9240 FOR I=0 TO 3
  925. 9250   PALETTE 12+I,[0,0,0]
  926. 9260 NEXT
  927. 9270 RETURN
  928. 9280 *CLS_2
  929. 9290 FOR I=0 TO 400
  930. 9300  WAIT 1
  931. 9310  IF PTRIG(1)=1 THEN I=400:NEXT:RETURN 9230
  932. 9320 NEXT
  933. 9330 CLS 1:GOSUB *CHIHEISEN
  934. 9340 WINDOW:VIEW
  935. 9350 PUT@A(0,290)-(639,479),PAN%
  936. 9360 RETURN
  937. 9370 *S_TEST
  938. 9380 RESTORE *MEN_DATA
  939. 9390 GOSUB *CHIHEISEN:COLOR 7
  940. 9400 FOR I=1 TO 14
  941. 9410  READ NO,TM
  942. 9420  FOR J=0 TO 3
  943. 9430   READ G,R,B
  944. 9440   PALETTE 12+J,[G*4/5,R*4/5,B*4/5]
  945. 9450  NEXT
  946. 9460 LOCATE 40,21:PRINT I:WAIT 200
  947. 9470 NEXT
  948. 9480 *TRAP
  949. 9490 IF ERL=7890 THEN RESUME NEXT
  950. 9500 BEEP
  951. 9510 IF ERL=7700 THEN LOCATE 30,21:PRINT"このディスクにはアクセスできません":RESUME 8000
  952. 9520 COLOR ,0:SCREEN@0:CLS
  953. 9530 IF ERR=82 OR ERL=180 THEN PRINT"フリーメモリが足りないようです(^_^;)。 サイドワークを外すなりして下さい。":END
  954. 9540 IF ERR=53 THEN PRINT"入出力装置またはCD装置に異常が発生しました。":END
  955. 9550 PRINT"エラー行";ERL;" エラー番号";ERR
  956. 9560 END
  957. 9570 '
  958. 9580 *MEN_DATA
  959. 9590 '    no tm  %12(空)      %13          %14          %15(地面)
  960. 9600 DATA  3, 4, 220,  0,220, 220,200,220, 160,160,220,   0,  0,220
  961. 9610 DATA  4, 4, 120,  0,220, 220,  0,200, 100,100,  0, 180,180,  0
  962. 9620 DATA  5, 4, 120,120,160, 100,100,120,  90, 90, 90, 120, 30, 30
  963. 9630 DATA  4, 3, 100,  0,200, 200,120,220, 180,100,140, 180,  0,  0
  964. 9640 DATA  5, 3, 220,  0,220, 160,  0,160, 100,  0,100, 120,  0,  0
  965. 9650 DATA  6, 3, 160,220,  0, 220,220,  0, 200,200,120, 100,  0,100
  966. 9660 DATA  7, 3, 180,100,180, 190,180,190, 200,200,200, 120,120,120
  967. 9670 DATA  6, 2,  20,  0, 40,  60,  0, 60,  80,  0, 80,  30, 30, 30
  968. 9680 DATA  7, 2, 180,220,  0,   0,220,  0,  60, 60, 60,  60,  0,120
  969. 9690 DATA  8, 2, 220,  0,220, 220,180,220, 180,180,180, 140,120,140
  970. 9700 DATA  7, 1, 200,100,160, 220,140,200, 160,160,160, 160,  0,  0
  971. 9710 DATA  8, 1,  60,  0,  0,  60,  0, 30,  60,  0, 60,   0,  0,  0
  972. 9720 DATA  9, 0, 200,  0,200, 200,120,200, 200,180,200,  80,  0,200
  973. 9730 DATA 10, 0, 220,100,220, 180,220, 80, 160,160,220,   0,  0,100
  974. 9740 *PRO_DATA
  975. 9750 DATA キム・ウェンリー少佐,男性,32,几帳面,コンピュータ・パソコン等
  976. 9760 DATA ジーニィ・マッハ大尉,女性,28,反射神経良し,コンピュータゲーム
  977. 9770 DATA リチャード元中佐,男性,47,冷静沈着,飛行機・軍事等
  978. 9780 DATA リーガー・パーマー大佐,男性,41,優柔不断,著作物全般
  979. 9785 DATA ライカンソー中佐,男性,36,よくわからない,なんでもあり?
  980. 9790 DATA エクスプローラー大尉,男性,66,自信過剰,科学・数学等
  981. 9800 *END_DATA
  982. 9810 DATA"1CONGRATULATIONS!",
  983. 9820 DATA"1NOW YOU'RE A REAL DOGFIGHTER OF"
  984. 9830 DATA"1OUR AIR FORCE.",    
  985. 9840 DATA"1AND NEXT YOU HAVE TO TRY YOURSELF "
  986. 9850 DATA"1AT YOUR OWN BATTLE FIELD.",
  987. 9860 DATA"1WE HAVE NOTHING TO DO FOR YOU.",,
  988. 9870 DATA"1GOOD LUCK AND BE COURAGEOUS!",,,,,,,,,,,,
  989. 9880 DATA "1ALL CLEAR",,,,
  990. 9890 DATA "2    STAFF",,,
  991. 9900 DATA "2Main Programmer",
  992. 9910 DATA "1        TAKEFUMI KIMURA",,
  993. 9920 DATA "2Speakers in Riddle"
  994. 9930 DATA "1        TAKEFUMI KIMURA"
  995. 9940 DATA "1        MORIHITO JIN"
  996. 9950 DATA "1        HIRONORI KOBAYASHI"
  997. 9960 DATA "1        KEI SATOH"
  998. 9970 DATA "1       MISS  YUKIE MIYAKAWA"
  999. 9980 DATA "1       &  MISS  YUKA SATOH"
  1000. 9990 DATA "1       SOH TUSHIMA"
  1001. 10000 DATA "1       KAZUKI IWASAKI"
  1002. 10010 DATA "1       SHINYA TAKAYAMA"
  1003. 10020 DATA "1       GAKU MAJIMA",
  1004. 10030 DATA "2Test Player"
  1005. 10040 DATA "1       KAZUNOBU OHSAKA"      
  1006. 10050 DATA "1       KEN MAJIMA"
  1007. 10060 DATA "1       SOH SUZUKI"
  1008. 10070 DATA "1       SATOSHI ITOH",,,
  1009. 10080 DATA "2Special thanks to"
  1010. 10090 DATA "2       The members of Astronomy Club & Personal-computer Club"
  1011. 10100 DATA "1                                in HIROSAKI High-school",,
  1012. 10110 DATA "2Supervisor",
  1013. 10120 DATA "1       MORIHITO JIN",,,
  1014. 10130 DATA "2    YOU ARE GREAT!"
  1015. 10140 DATA "2    AND VERY WISE!",
  1016. 10150 DATA "2    THANKS TO YOUR PLAYING!",,,,,,,,,
  1017. 10160 DATA "1       PRESENTED BY ☆>= KIM =<☆",
  1018. 10170 DATA "1                   THE END",,,,,,,,"*"
  1019. 10180 *OP_DATA
  1020. 10190 DATA "THIS IS NOT A FLIGHT SIMULATOR,"
  1021. 10200 DATA ,"     BUT A SUPER QUIZ-GAME.....",,,,,,,
  1022. 10210 DATA "YOU, FIGHT"
  1023. 10220 DATA "          TO BE A FIGHTER PILOT!",,
  1024. 10230 DATA "RIDE ON A FLIGHT SIMULATOR!"
  1025. 10240 DATA "",,,,,,,,,,,,,,,"*"
  1026. 10250 *EXIT_DATA
  1027. 10260 DATA "THANKS TO PLAYING"
  1028. 10270 DATA "YOU SEE ENDING?"
  1029. 10280 DATA "IF NOT,"
  1030. 10290 DATA "PLEASE,"
  1031. 10300 DATA "TRY AGAIN LATER!",
  1032. 10310 DATA "THANKS TO",
  1033. 10320 DATA "MORIHITO JIN"
  1034. 10330 DATA "KEI SATOH"
  1035. 10340 DATA "YUKIE MIYAKAWA"
  1036. 10350 DATA "HIRONORI KOBAYASHI"
  1037. 10360 DATA "GAKU/KEN MAJIMA"
  1038. 10370 DATA "YUKA SATOH"
  1039. 10380 DATA "AND MY MANY FRIENDS",
  1040. 10390 DATA "PRESENTED BY <KIM>"
  1041. 10400 DATA "- TAKEFUMI KIMURA -"
  1042. 10410 DATA "GOOD BYE FOR YOU!",,"*"
  1043. 10420 DATA 
  1044. 10430 *INST_DATA
  1045. 10440 DATA "      GAME INSTRUCTION",
  1046. 10450 DATA "・上下で問題の答えを選び、AボタンまたはBボタンで解答して"
  1047. 10460 DATA " 敵を撃墜せよ!"
  1048. 10470 DATA "・Aボタンはバルカン砲だ。当たると敵のARMOR-CLASS"
  1049. 10480 DATA " が1下がるぞ。ACを0にすれば撃墜だ!"
  1050. 10490 DATA "・Bボタンは敵を一撃で撃墜できるAAM(対空ミサイル)だ。"
  1051. 10500 DATA " 各面につき4発しかないからよく考えて使おう。"
  1052. 10510 DATA "・答えを間違えると敵に撃たれてH.P.が減ってしまうぞ!"
  1053. 10520 DATA "  H.P.が0になるともちろんゲームオーバーだ。"
  1054. 10530 DATA "・RUNボタンのアフターバーナーで問題をスキップできるぞ!"
  1055. 10540 DATA " ただし1面につき1回だけだ。"
  1056. 10550 DATA "・定められた数の敵機を撃墜できれば面クリアだ!"
  1057. 10560 DATA "・ボーナスゲームでスコアや残機を増やそう!"
  1058. 10570 DATA "・14回の訓練をクリアして真のファイターパイロットを目指せ!",
  1059. 10580 DATA "・OPTIONSの「CD曲番号の選択」でBGMの選択ができます。"
  1060. 10590 DATA " ゲームプレイ中には数曲の中からランダムにBGMを流すことが"
  1061. 10600 DATA " できますが、その曲数を設定するのが3番目の「プレイ中の曲数」"
  1062. 10610 DATA " です。その下の「プレイ中の曲番」で実際にゲーム中に流したい曲"
  1063. 10620 DATA " を選んでください。"
  1064. 10630 DATA "*"
  1065.